package com.aegis.core.model;

import com.aegis.core.manager.AegisAppManager;
import com.aegis.core.utils.AegisCommonUtil;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Author wuweixin
 *
 * @Version 1.0
 * @Descritube
 */
public class AegisSession {

    /**
     * 应用id
     */
    private String appId;

    /**
     * 用户id,业务方自己定义的
     */
    private Object userId;

    /**
     * 仅做展示使用,可以填入用户登录账户，必填
     */
    private String account;

//    /**
//     * 用户所属组别（如果是后端管理平台，对应RBAC模型中的ROLE角色）
//     */
//    private List<String> group;

    /**
     * 用户的额外会话信息，按需填入，可在管理界面查看。后续也可以通过工具拿到这个会话信息
     */
    private Map<String, Object> extra;

    /**
     * 会话生成时间，登录时无需传入
     */
    private Date createTime;

    /**
     * 会话生成的时的用户ip，登录时无需传入
     */
    private String loginIp;

    /**
     * 登录的设备
     */
    private String loginDevice;

    public String getAppId() {
        if (AegisCommonUtil.isStringBlank(appId)) {
            this.appId = AegisAppManager.getAppId();
        }
        return appId;
    }


    public Object getUserId() {
        return userId;
    }

    public void setUserId(Object userId) {
        this.userId = userId;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public Map<String, Object> getExtra() {
        return extra;
    }

    public void setExtra(Map<String, Object> extra) {
        this.extra = extra;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getLoginIp() {
        return loginIp;
    }

    public void setLoginIp(String loginIp) {
        this.loginIp = loginIp;
    }

    public String getLoginDevice() {
        return loginDevice;
    }

    public void setLoginDevice(String loginDevice) {
        this.loginDevice = loginDevice;
    }



}
